// 管理用户数据-pinia store
import { defineStore } from "pinia";
import { ref } from "vue";
import {loginAPI} from '@/apis/user'
import { useCartStore } from "./cartStore";
import { mergeCartAPI } from "@/apis/cart";
export const useUserStore=defineStore('user',()=>{

    const cartStore=useCartStore()
    // 定义数据 state
    const userInfo=ref({})
    // 定义方法action
    const getUserInfo=async ({account,password})=>{
        // 发送登录请求的接口并且接收数据
        const res=await loginAPI({account,password})
        userInfo.value=res.result

        // 合并购物车操作
        await mergeCartAPI(cartStore.cartList.map(item=>{
        return{
            skuId:item.skuId,
            selected:item.selected,
            count:item.count
        }
    }))
        cartStore.updataNewList()
    }




    // 退出登录时清空用户数据
    const clearUserInfo=()=>{
        userInfo.value={}
        // 同时清空购物车信息
        cartStore.clearCart()
    }
    // 以对象的格式将state和action  return 出去
    return{
        userInfo,
        getUserInfo,
        clearUserInfo
    }
},{
    persist:true,
})